package club.hicode.daydayup.reqbody;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 同步文件的信息。<br>
 * 空目录不做上传。
 *
 * @author Liu Chunfu
 * @date 2018-04-17 下午2:54
 **/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class SyncFileDto {

    /**
     * 文件更新时间
     */
    private Long updateTimestamp;

    /**
     * 相对路径 or 共享磁盘中路径  or FTP磁盘中的路径<br>
     * notice:此路径必须为去掉 前半部root路径和APP的路径
     */
    private String relativePath;

    /**
     * 文件名
     */
    private String fileName;

    /**
     * 文件MD5信息
     */
    private String fileMd5;

    /**
     * 只会在服务端进行操作的时候处理
     * <li>-1:删除</li>
     * <li>0 :修改</li>
     * <li>1 :新增</li>
     *
     * @since 3.2
     */
    private Integer type;

    /**
     * 是否相同，客户端文件上报的时候需要将相同的元素传递回去
     *
     * @since 3.2
     */
    private Boolean asSame = false;

    /**
     * 构造函数
     *
     * @param updateTimestamp 更新时间戳
     * @param relativePath    相对路径
     * @param fileMd5         文件MD5
     */
    public SyncFileDto(Long updateTimestamp, String relativePath, String fileMd5) {
        this.updateTimestamp = updateTimestamp;
        this.relativePath = relativePath;
        this.fileMd5 = fileMd5;
    }
}
